#ifndef EXCEPTION_H_
#define EXCEPTION_H_

#include <windows.h>

namespace sbase
{
	void* TransInit(void);
	void  TransFini(void* pCatcher);

	class IException 
	{
	public:
		virtual const char*			GetName() const									= 0;
		virtual EXCEPTION_POINTERS* GetExceptionInfo(void)							= 0;
	};


	class Exception : public IException
	{
	public:	
		const char*			GetName() const;
		EXCEPTION_POINTERS* GetExceptionInfo(void);
	public:
		Exception(EXCEPTION_POINTERS * m_pExp);	
		Exception(const Exception& se) : m_pExp(se.m_pExp) {}
		~Exception() {}
	private:
		EXCEPTION_POINTERS * m_pExp;		
	};
    
};

#endif
